package org.footballmanager.pandafootball.system.domain.enums;

import org.footballmanager.pandafootball.common.converter.BaseEnum;

import java.util.HashMap;
import java.util.Map;

/**
 * 碎片颜色枚举类
 * 包括白，绿，蓝等
 * 使用枚举类可以有效的节省代码行数，调整系统的耦合度
 *
 * @author chenjian
 * @since 2017年9月27日上午10:57:28
 */
public enum SPYS implements BaseEnum<Integer> {
    WHITE(0, "白色碎片"), GREEN(1, "绿色碎片"), BLUE(2, "蓝色碎片"), PURPLE(3, "紫色碎片"), ORANGE(4, "橙色碎片");

    /* 值 */
    private int value;

    /* 文字 */
    private String text;

    /* Map对象 */
    private static Map<Integer, SPYS> valueMap = new HashMap<>();

    static {
        for(SPYS mail : SPYS.values()) {
            valueMap.put(mail.getValue(), mail);
        }
    }

    /**
     * 构造方法
     * @param value
     * @param text
     */
    SPYS(int value, String text){
        this.value = value;
        this.text = text;
    }

    /**
     * 获取值
     * @param value 参数
     * @return 返回值
     */
    public static SPYS getByValue(int value) {
        SPYS result = valueMap.get(value);
        if(result == null) {
            throw new IllegalArgumentException("No element matches " + value);
        }
        return result;
    }

    /**
     * 获取文字
     * @param text 参数
     * @return 返回值
     */
    public static SPYS getByText(String text) {
        for (SPYS e : values()) {
            if(e.getText().equals(text)) {
                return e;
            }
        }
        return null;
    }

    @Override
    public String getText() {
        return text;
    }

    @Override
    public Integer getValue() {
        return value;
    }

}